#pragma once

const char* libm_symbols[] = {
        "acos",
        "acosf",
        "acosh",
        "acoshf",
        "acoshl",
        "acosl",
        "asin",
        "asinf",
        "asinh",
        "asinhf",
        "asinhl",
        "asinl",
        "atan",
        "atan2",
        "atan2f",
        "atan2l",
        "atanf",
        "atanh",
        "atanhf",
        "atanhl",
        "atanl",
        "cabsl",
        "cbrt",
        "cbrtf",
        "cbrtl",
        "ceil",
        "ceilf",
        "ceill",
        "copysign",
        "copysignf",
        "copysignl",
        "cos",
        "cosf",
        "cosh",
        "coshf",
        "coshl",
        "cosl",
        "cprojl",
        "csqrtl",
        "drem",
        "dremf",
        "erf",
        "erfc",
        "erfcf",
        "erfcl",
        "erff",
        "erfl",
        "exp",
        "exp2",
        "exp2f",
        "exp2l",
        "expf",
        "expl",
        "expm1",
        "expm1f",
        "expm1l",
        "fabs",
        "fabsf",
        "fabsl",
        "fdim",
        "fdimf",
        "fdiml",
        "feclearexcept",
        "fedisableexcept",
        "feenableexcept",
        "fegetenv",
        "fegetexcept",
        "fegetexceptflag",
        "fegetround",
        "feholdexcept",
        "feraiseexcept",
        "fesetenv",
        "fesetexceptflag",
        "fesetround",
        "fetestexcept",
        "feupdateenv",
        "finite",
        "finitef",
        "floor",
        "floorf",
        "floorl",
        "fma",
        "fmaf",
        "fmal",
        "fmax",
        "fmaxf",
        "fmaxl",
        "fmin",
        "fminf",
        "fminl",
        "fmod",
        "fmodf",
        "fmodl",
        "frexp",
        "frexpf",
        "frexpl",
        "gamma",
        "gammaf",
        "gammaf_r",
        "gamma_r",
        "hypot",
        "hypotf",
        "hypotl",
        "ilogb",
        "ilogbf",
        "ilogbl",
        "j0",
        "j0f",
        "j1",
        "j1f",
        "jn",
        "jnf",
        "ldexpf",
        "ldexpl",
        "lgamma",
        "lgammaf",
        "lgammaf_r",
        "lgammal",
        "lgammal_r",
        "lgamma_r",
        "llrint",
        "llrintf",
        "llrintl",
        "llround",
        "llroundf",
        "llroundl",
        "log",
        "log10",
        "log10f",
        "log10l",
        "log1p",
        "log1pf",
        "log1pl",
        "log2",
        "log2f",
        "log2l",
        "logb",
        "logbf",
        "logbl",
        "logf",
        "logl",
        "lrint",
        "lrintf",
        "lrintl",
        "lround",
        "lroundf",
        "lroundl",
        "modf",
        "modff",
        "modfl",
        "nan",
        "nanf",
        "nanl",
        "nearbyint",
        "nearbyintf",
        "nearbyintl",
        "nextafter",
        "nextafterf",
        "nextafterl",
        "nexttoward",
        "nexttowardf",
        "nexttowardl",
        "pow",
        "powf",
        "powl",
        "remainder",
        "remainderf",
        "remainderl",
        "remquo",
        "remquof",
        "remquol",
        "rint",
        "rintf",
        "rintl",
        "round",
        "roundf",
        "roundl",
        "scalb",
        "scalbf",
        "scalbln",
        "scalblnf",
        "scalblnl",
        "scalbn",
        "scalbnf",
        "scalbnl",
        "__signbit",
        "__signbitf",
        "__signbitl",
        "signgam",
        "significand",
        "significandf",
        "significandl",
        "sin",
        "sincos",
        "sincosf",
        "sincosl",
        "sinf",
        "sinh",
        "sinhf",
        "sinhl",
        "sinl",
        "sqrt",
        "sqrtf",
        "sqrtl",
        "tan",
        "tanf",
        "tanh",
        "tanhf",
        "tanhl",
        "tanl",
        "tgamma",
        "tgammaf",
        "tgammal",
        "trunc",
        "truncf",
        "truncl",
        "y0",
        "y0f",
        "y1",
        "y1f",
        "yn",
        "ynf",
        nullptr
};